#include <stdio.h>
#include <string.h>

/*
C语言中的常量
    1、常量是在程序的运行过程中不允许修改的
    2、常量必须赋初值   
        使用 define 不赋初值 不报错

#define
    预处理指令  宏定义   <无脑替换>
    第一种用法
        在语出阶段的时候 会对代码中的内容进行替换
    第二种用法
        用于定义常量
            好处
                1、方便修改
                2、作为常量使用防止 憨批修改
    第三种用法
        宏函数 
            #define PRINT(x) printf(x);
            #define NUM_MAX(A , B) A > B ? A : B

const
    是修饰符 用于修饰变量  让变量 成为 常量
        1、憨批修改  
            在进行函数传递参数的时候 使用 const 来修饰形参 防止函数内部修改
        2、作为常量使用

define是在代码层面直接替换  const 是修饰一个变量成为常量
define是不会在内存中创建空间的 const 是根据不同的修饰类型来 创建不同大小的空间

 */
// 宏函数
#define PRINT(x) printf(x);
#define NUM_MAX(A , B) A > B ? A : B
#define N1_PWM 121
#define N2_PWM 130
#define N3_PWM 140


int main(int argc, char const *argv[])
{
    const int num = 40;
    int A = num + 20;
    printf("num = %d\n" , num);
    printf("%ld\n" , sizeof(N1_PWM));

    return 0;
}






// int main(int argc, char const *argv[])
// {
//     PRINT("张三今天心情很好\n")
//     int MAX = NUM_MAX(12 , 13);
//     printf("MAX = %d\n" , MAX);
//     return 0;
// }

// int main(int argc, char const *argv[])
// {
//     // 电机
//     int M_1 = 0;
//     int M_2 = 0;
//     int M_3 = 0;
//     int M_4 = 0;
//     // 按键
//     int key_1 = 0;
//     int key_2 = 1;
//     int key_3 = 1;
    
//     if (0 == key_1) M_1 = N1_PWM;
//     else if (0 == key_2) M_1 = N2_PWM;
//     else if (0 == key_3) M_1 = N3_PWM;
//     else printf("没有按下\n");

//     printf("M1 = %d\n", M_1);
//     return 0;
// }
